Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 28.12.2013, 06:25
Новичок на форуме
Отправить личное сообщение для Kapitan79 Посмотреть профиль Найти все сообщения от Kapitan79
 
Регистрация: 05.11.2013
Сообщений: 7

Проблема с асинхронной передачей данных через POST
Всем привет!

2 дня никак не могу найти истину, оч нужна помосчь.

Проблема следующая.

Имеется форма содержащая в числе прочего элемент

<select id="area" size="1" name="area"   multiple onClick='sel("area")'>


Задача - выбрать в данном селекте несколько пунктов и отправить из на сервер методом POST.

Я решил попробовать сделать это через ajax.

function sel(idSel)
		{
			alert (idSel)
			var obj = document.getElementById(idSel);
			/*var arrIndexes = new Object;*/
			var j=0;
			for (var i=0; i < obj.options.length; i++)
			  	{
					if (obj.options[i].selected) 
					{
						j++;	 
						var request = getXmlHttpRequest();
						request.onreadystatechange = function ()
						{
							if (request.readyState == 4) 
							{
							  if (request.status == 200)
							  {
								  var result = document.getElementById("MyId"); 
								  result.firstChild.nodeValue = request.responseText; 
							  } else document.write("Произошла ошибка. Обнови страничку");
							}
						}
						var url = "project/additem.inc";//изменим адрес серверного  обработчика
						data = '"'+idSel+j+'='+i+'"'
						alert (data)
						request.open("POST", url, true); // указываем метод post
						
						//посылаем два заголовка: тип данных и размер данных 
						request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
						request.setRequestHeader("Content-Length", data.length);
						request.send(data);// посыл данных, вместо null вставляем переменную с параметрами
					} 
			}
			alert ('Отправлено ')
		}
		
		// функция создания объекта XMLHttpRequest для передачи массива выбранных пунктов меню в $_POST через ajax
		
		function getXmlHttpRequest()
		{
			if (window.XMLHttpRequest) 
			{
				try 
				{
					return new XMLHttpRequest();
				} 
				catch (e){}
			} 
			else if (window.ActiveXObject) 
			{
				try 
				{
					return new ActiveXObject('Msxml2.XMLHTTP');
				} catch (e){}
				try 
				{
					return new ActiveXObject('Microsoft.XMLHTTP');
				} 
				catch (e){}
			}
			return null;
		}
     </script>


Проблема в том, что со стороны PHP скрипта переменная $_POST['area1'] пуста.
Есть ощущение что я что то недопонимаю в теории.
Помогите разобраться.
Ответить с цитированием
  #2 (permalink)  
Старый 28.12.2013, 06:38
Новичок на форуме
Отправить личное сообщение для Kapitan79 Посмотреть профиль Найти все сообщения от Kapitan79
 
Регистрация: 05.11.2013
Сообщений: 7

firebug пишет

TypeError: result is null


result.firstChild.nodeValue = request.responseText;

Почему пишет разобрался, но легче не стало)
Исправление вот здесь:

if (request.status == 200)
							  {
								  var result = document.getElementById("area"); 
								  result.firstChild.nodeValue = request.responseText;

Последний раз редактировалось Kapitan79, 28.12.2013 в 06:48.
Ответить с цитированием
  #3 (permalink)  
Старый 28.12.2013, 11:47
Новичок на форуме
Отправить личное сообщение для Kapitan79 Посмотреть профиль Найти все сообщения от Kapitan79
 
Регистрация: 05.11.2013
Сообщений: 7

в firebug отображается обработанный возвращаемый HTML код.

Однако на странице он почему то не появляется(
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема POST запроса ajax kay-n Общие вопросы Javascript 2 29.08.2012 18:01
Как обновить страницу открытую через post Роберт Общие вопросы Javascript 1 05.11.2008 14:53
XMLHTTPRequest передача имя через POST dds AJAX и COMET 0 14.08.2008 14:44
Просмотр передаваемых данных через AJAX Гость AJAX и COMET 3 04.08.2008 14:34
проблема с передачей русского текста в Prototype subaru Prototype & script.aculo.us 2 26.07.2007 16:56